/*
 * 附件页面初始化
 *
 * Depends:
 *	storage.js
 *  jquery.form.js
 *  jquery.blockUI.js
 */
/**
 * 初始化附件页面
 * @return
 */
function initAttachmentForm(){
	var maxCount = 10;
	var acceptType = '';
	var deniedStr = '不支持上传后缀为 $ext 的文件';
	var isPhotoAttachment = jQuery('input[name="atchType"]').val() == 'INFO_PHOTO';
	if(isPhotoAttachment){
		maxCount = 1;
		acceptType = 'gif|jpg|jpeg|png|bmp';
		deniedStr = '仅支持上传图片格式的文件';
	}
	// 上传文件多选
	jQuery('#upFiles').MultiFile({
		max: maxCount,
		accept: acceptType,
		list: jQuery('#divSelectedFiles'),
		namePattern: '$name_$i',
		STRING: {
			remove: '<img src="' + contextPath + '/commons/images/icon_trash.gif" height="16" width="16" alt="删除待上传附件" />',
			selected: '待上传文件: $file',
			denied: deniedStr,
			duplicate: '该文件已选择:\r\n$file'
		},
		afterFileAppend: function(){
	        jQuery('#divSelectedFiles').show('normal', iframeAutoFit); // 显示自定义list
		},
		afterFileRemove: function(element, value, master_element){
			if(master_element.n == 2){
				jQuery('#divSelectedFiles').slideUp('normal', iframeAutoFit);
			}
		}
	});
	// ajax上传绑定
	jQuery('form[name="attachment"]').ajaxForm({
		beforeSubmit: function(formData, jqForm, options){
			var nofiles = jQuery('span.MultiFile-title', jqForm).length == 0; // 待上传文件为空
			if(isPhotoAttachment){
				if(nofiles && jQuery('#tdUploaded', jqForm).children().length == 0){
					alert('请先选择要上传的图片');
					return false;
				}
				if(jQuery('[name="photo.order"]', jqForm).val() == ''){
					alert('图片序号不能为空');
					return false;
				}
				// 检查父窗口展示方式是否为图文
				window.parent.checkDisp();
			}
			else if(nofiles){
				alert('请先选择要上传的文件');
				return false;
			}
			blockWithMsg('上传中，请稍候...');
		},
		success: function(responseText, statusText, $form){
			top.unblockTop({fadeOut: 0});
			jQuery('input:file', $form).MultiFile('reset');
			if(isPhotoAttachment){
				jQuery('#uploadedFiles').html(jQuery('#uploadedFiles', responseText).html());
				jQuery('#divResult').html(jQuery('#divResult', responseText).html());
				initUploadedPhotoTable(); // 初始化已上传图片的表格
				jQuery('#abtnNew', $form).click(); // 隐藏照片信息编辑窗口
				blockAfterSubmit('保存成功');
			} else {
				jQuery('#uploadedFiles').html(jQuery('#uploadedFiles', responseText).html());
				jQuery('#divResult').html(jQuery('#divResult', responseText).html());
				bindDeleteBtn();
				blockWithCloseableMsg(jQuery('#divResult', $form).text());
			}
		}
	});

	// 照片附件
	if(isPhotoAttachment){
		// 附件页面【新增/取消】按钮
		jQuery('#abtnNew').click(
			function() {
				var disabled = jQuery('#abtnSave').attr('disabled');
				if(disabled){
					setPhotoEditTable(); // 新增时重置照片信息为空
				}
				jQuery(this).text(disabled?'取 消':'新增图片');
				jQuery('#tbNewPhoto').slideToggle('normal', iframeAutoFit);
				jQuery('#abtnSave').attr('disabled', disabled?false:true);
			}
		);
		// 初始化已上传图片的表格
		initUploadedPhotoTable();
	} else {
		// 附件页面【删除已上传附件】按钮，非照片
		bindDeleteBtn();
	}
}

/**
 * 附件页面【删除已上传附件】按钮，非照片
 */
function bindDeleteBtn(){
	jQuery('.imgDelAttachment').click( function() {
		if(confirm('附件删除后不可恢复，是否确定？')){
			var $img = jQuery(this);
			var queryString = 'event=delete&id=' + $img.attr('attachmentId')
				+ '&atchType=' + jQuery('input[name="atchType"]').val()
				+ '&entityRefId=' + jQuery('input[name="entityRefId"]').val();
			jQuery.post(contextPath + '/commons/attachment/upload.shtml', queryString, function (data, textStatus) {
				$img.parent('div').remove();
				blockAfterSubmit('删除成功');
			});
		}
	});
}

/**
 * 附件页面绑定翻页链接，照片附件
 */
function bindPageHref(pageHref){
	jQuery('.hrefPage').click( function() {
		blockWithMsg();
		// AJAX取附件
		var queryString = '&atchType=' + jQuery('input[name="atchType"]').val()
			+ '&entityRefId=' + jQuery('input[name="entityRefId"]').val()
			+ '&page=' + jQuery(this).attr('page');
		jQuery.get(pageHref, queryString, function (data, textStatus) {
			top.unblockTop();
			jQuery('#uploadedFiles').html(jQuery('#uploadedFiles', data).html()); // 替换页面已上传文件内容
			initUploadedPhotoTable(pageHref); // 初始化已上传图片的表格
			iframeAutoFit();
		});
	});
}

/**
 * 初始化已上传图片的表格
 */
function initUploadedPhotoTable(pageHref){
	if(pageHref === undefined) pageHref = contextPath + '/commons/attachment/attachmentList.shtml';
	initThumbZoom(); // 图片显示zoomimage插件
	bindPageHref(pageHref); // 图片附件分页
	bindPhotoOperate(pageHref); // 图片附件编辑、删除
}

/**
 * 附件页面初始化缩略图放大显示插件
 */
function initThumbZoom(){
	jQuery('a.zoomImg').zoomimage({
		centered: true,
		hideSource: true,
		controlsTrigger: 'mouseover',
		beforeZoomIn: function(boxID) {
			jQuery('#' + boxID).find('img').css('opacity', 0.3).animate(
				{'opacity':1},
				{ duration: 500, queue: false });},
		beforeZoomOut: function(boxID) {
			jQuery('#' + boxID).find('img').css('opacity', 1).animate(
				{'opacity':0.3},
				{ duration: 500, queue: false });}
	});
}

/**
 * 绑定照片编辑、删除操作
 */
function bindPhotoOperate(pageHref){
	// 编辑
	jQuery('.hrefEdit').click( function() {
		var $this = jQuery(this);
		jQuery('#abtnNew').text('取 消');
		jQuery('#tbNewPhoto').slideDown('normal', iframeAutoFit);
		jQuery('#abtnSave').attr('disabled', false);

		var isEmpty = $this.siblings('#emptyPhoto').val() == 'true';
		var photo = {
			id: $this.siblings('#id').val(),
			name: $this.siblings('#fullname').val(),
			title: $this.siblings('#title').val(),
			order: $this.siblings('#order').val(),
			author: $this.siblings('#author').val(),
			date: $this.siblings('#date').val(),
			place: $this.siblings('#place').val(),
			person: $this.siblings('#person').val(),
			background: $this.siblings('#background').val(),
			photoContent: $this.siblings('#photoContent').val(),
			disabled: !isEmpty,
			uploaded: null
		};
		if(!isEmpty){
			// 显示已上传附件
			var $delImg = jQuery('<img />').attr('src', contextPath + '/commons/images/icon_trash.gif')
					.attr('height', 16).attr('width', 16)
					.attr('alt', '删除附件').css('cursor', 'pointer');
			var $href = jQuery('<a />').attr('href', contextPath + '/commons/download.shtml?atchType=INFO_PHOTO&id=' + photo.id)
					.attr('title', '下载 『' + photo.name + '』').text(photo.name);
			// 删除已上传附件
			$delImg.click(function(){
				if(confirm('附件删除后不可恢复，是否确定？')){
					var queryString = 'event=deletePhotoContent&atchType=INFO_PHOTO&id=' + photo.id;
					jQuery.post(contextPath + '/commons/attachment/upload.shtml', queryString, function (data, textStatus) {
						$delImg.parent('td').empty();
						jQuery('#tdThumb' + photo.id).empty();
						jQuery('input:file').attr('disabled', false);
						blockAfterSubmit('删除成功');
					});
				}
			});
			photo.uploaded = [$delImg, '&nbsp;', $href];
		}
		// 将当前照片信息写入编辑框
		setPhotoEditTable(photo);

		var panelId = jQuery('div.ui-tabs-panel:not(.ui-tabs-hide)').attr('id');
		location.href = '#anchorAttachment' + panelId;
	});
	// 删除
	jQuery('.hrefDel').click( function() {
		if(confirm('删除后不可恢复，是否确定？')){
			var queryString = 'event=delete&atchType=INFO_PHOTO&id=' + jQuery(this).siblings('#id').val()
				+ '&entityRefId=' + jQuery('input[name="entityRefId"]').val()
				+ '&page=' + jQuery('input[name="page"]').val();
			jQuery.post(pageHref, queryString, function (data, textStatus) {
				jQuery('#uploadedFiles').html(jQuery('#uploadedFiles', data).html());
				initUploadedPhotoTable(pageHref); // 初始化已上传图片的表格
				blockAfterSubmit('删除成功');
			});
		}
	});
}

/**
 * 编辑照片信息表格内数据
 */
function setPhotoEditTable(photo){
	var isReset = photo === undefined;
	jQuery('[name="photo.id"]').val(isReset?'':photo.id);
	jQuery('[name="photo.title"]').val(isReset?'':photo.title);
	jQuery('[name="photo.order"]').val(isReset?'':photo.order);
	jQuery('[name="photo.photoContent"]').val(isReset?'':photo.photoContent);
	jQuery('input:file').MultiFile('reset');
	jQuery('input:file').attr('disabled', isReset?false:photo.disabled);
	var $tdUploaded = jQuery('#tdUploaded').empty();
	for(var i=0; !isReset&& photo.uploaded !=null && i<photo.uploaded.length; i++){
		$tdUploaded.append(photo.uploaded[i]);
	}
}
// -->
